import * as bm from "../js/baseModule.js";
import * as NewFooter from "../modules/common/NewFooter.js";
import * as ProjectList from "../modules/project/ProjectList.js";

export class Module extends bm.baseModule {
    constructor(view) {
        super(view);
        this.footer = new NewFooter.Module($('#NewFooter'));
        this.init();
    }
    init() {
        let that = this;
        // 读取缓存的项目列表
        let list = localStorage.getItem('prolist');
        if (list != null) {
            list = JSON.parse(list);
        } else {
            list = [];
            list.push(demand_empty);
        }
        globalData.project_list = list;
        funs.getModule('modules/project/ProjectList.html',$('#content'), null);
        //获取ip
        api.new_ipLocation({
            succ: function (json) {
                $.extend(true, globalData.ipPos, json);
                $.extend(true, globalData.selPos, json);
            }
        });
        //初始化数据
        api.getInitData({
            succ: function (json) {
                let provData = {
                    sort: "published_at",//发布时间
                    order: "desc",
                    cnt: 20,
                    city: 'mine',
                    business: 'all',
                    demand: 'all'
                };
                //如果是进入“我参与的”
                if (globalData.particalList) {
                    provData.city = 'all';
                    provData.business = 'all';
                    provData.demand = 'mine';
                }
                //如果是进入“我参与的”
                if (globalData.freeList) {
                    provData.city = 'all';
                    provData.business = 'all';
                    provData.demand = 'free';
                }
                //如果是游客
                if (json.user.type != '100') {
                    provData.city = 'all';
                    provData.business = 'all';
                    provData.demand = 'all';
                }

                api.getDemandList(provData, {
                    succ: function (proList) {
                        // 用户信息
                        json.user = funs.mappingUser(json.user);
                        // 已开通的增值服务列表
                        let pack = {
                            "id": 0,
                            "uid": json.user.id,
                            "call_point": 0,
                            "sms_point": 0,
                            "total_call_point": 0,
                            "total_sms_point": 0,
                            "accum_call_point": 0,
                            "accum_sms_point": 0,
                            "area_id": [],
                            "end_date": "1970-01-01",
                            "created_at": 0,
                            "updated_at": 0,
                            "deleted_at": 0,
                            "prov_list": [],
                        };
                        json.pack = json.pack ? json.pack : pack;
                        // 参与的项目列表
                        json.partic_demand_list = json.partic_demand_list.map(function (item) {
                            return funs.mappingDemand(item);
                        });
                        // 已开通的增值服务列表
                        json.supplier_vas = json.sms_vas_list;
                        //自己的项目列表
                        if (json.my_demand_list) {
                            let num = json.my_demand_list.length;
                            for (let i = 0; i < num; i++) {
                                json.my_demand_list[i] = funs.mappingDemand(json.my_demand_list[i]);
                            }
                        } else {
                            json.my_demand_list = [];
                        }
                        //与当前工程商相同省份相同等级的工程商数量
                        let supplier_cnt = {
                            "prov_level": 1, // 与当前工程商相同省份相同等级的工程商数量
                            "prov": 1,
                            "total": 1
                        };
                        json.supplier_cnt = json.supplier_cnt ? json.supplier_cnt : supplier_cnt;
                        json.prolist = proList;
                        funs.concatData(json);
                    },
                    fail: function () {

                    }
                })
            }
        });
    }

}

/**
 * index作为入口的页面模块，需要在此处实例化一个对象；其他模块不需要
 * 实例化操作放在路由加载执行完毕的事件中执行，能保证页面不跳动
 */
$(window).on('routeReady', function () {
    new Module($("body"))
});

/** 因为index.js作为requireJs的入口文件，是异步载入的；route.js监听document load的事件触发时，有可能index.js还没被加载完成。
 * 必须在document的load事件后再实例化index，是因为load之前就加载的话，会面临路由变化页面闪动的问题。
 * 如果首页模块没有被实例化,且页面已经load，则说明上面的routeReady监听触发时，index.js没有加载完成,这会导致index模块没有被实例化。
 * 因此，在此处再做一次index的实例化。
 */
(function () {
    if(!funs.hasLoadModuleArray.hasOwnProperty('Index') && globalData.domReady){
        new Module($("body"));
        // let firstModule = globalData.entryPage;
        // if(firstModule != 'index'){
        //     funs.swipeModule()
        // }
    }
})();